package uqbar.comm;

import java.util.List;

import uqbar.comm.protocol.InputBuilder;
import uqbar.comm.protocol.InputFactory;
import uqbar.comm.protocol.InputProcessor;
import uqbar.comm.protocol.Protocol;


public class ProtocolDecorator<Input> implements Protocol<Input> {

	private Protocol<Input> decorated;

	protected ProtocolDecorator(final Protocol<Input> decorated) {
		this.decorated = decorated;
	}

	protected Protocol<Input> getDecorated() {
		return this.decorated;
	}

	@Override
	public InputBuilder newInputBuilder() {
		return this.getDecorated().newInputBuilder();
	}

	@Override
	public InputFactory<Input> newInputFactory() {
		return this.getDecorated().newInputFactory();
	}

	@Override
	public List<InputProcessor<Input>> newInputProcessors() {
		return this.getDecorated().newInputProcessors();
	}

}
